package com.loan.system.domain;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.loan.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author shiguang on 2022/9/7 14:49
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("vn_user_apply")
@ExcelIgnoreUnannotated
@ApiModel("贷款信息配置表")
public class ApplyEntity extends BaseEntity {

    private static final long serialVersionUID = 1L;

    private Long id;

    /**
     * 订单编号
     */
    private String orderSn;

    /**
     * 用户id
     */
    private Long userId;

    /**
     * 用户名
     */
    private String userName;

    /**
     * 贷款人电话号码
     */
    private String userPhone;

    /**
     * 贷款金额
     */
    private Integer applyMoney;

    /**
     * 实际贷款金额
     */
    private Integer realApplyMoney;

    /**
     * 贷款周期
     */
    private Integer applyCycle;

    /**
     * 服务费
     */
    private Integer applyServiceCharge;

    /**
     * 减免金额
     */
    private Integer reductionMoney;

    /**
     * 订单状态
     */
    private String status;

    /**
     * 公司ID
     */
    private Long companyId;

    @TableField(exist = false)
    private String companyName;

    /**
     * 催收人ID
     */
    private Long collectionBy;

    /**
     * 初审人ID
     */
    private Long oneExamineBy;

    /**
     * 复审人ID
     */
    private Long twoExamineBy;

    /**
     * 已还金额
     */
    private Integer alreadyRepayMoney;

    /**
     * 贷款时间
     */
    private Date applyTime;

    /**
     * 应还款时间
     */
    private String repaymentTime;

    /**
     * 最终还款时间
     */
    private Date alreadyRepayTime;

    /**
     * 是否首次借贷  0：是  2：否
     */
    private String firstApply;

    /**
     * 账号管理费
     */
    private Integer manageMoney;

    /**
     * 审核费用
     */
    private Integer riskMoney;

    /**
     * 日利率
     */
    private Integer dayRate;

    /**
     * 逾期费率
     */
    private Integer expireRate;

    /**
     * 利息
     */
    private Integer interestMoney;

    /**
     * 逾期费用
     */
    private Integer overMoney;

    /**
     * 逾期天数
     */
    private Integer overDay;

    private Long customerBy;

    /**
     * 案件分配时间
     */
    private Date customerCreateTime;

    private Integer applyNum;

    @TableField(exist = false)
    private String overStatus;


    @TableLogic
    private String delFlag;

    /**
     * 初审分配时间
     */
    private Date oneExamineTime;

    /**
     * 终审分配时间
     */
    private Date twoExamineTime;

    /**
     * 逾期分配时间
     */
    private Date overExamineTime;

    private String remark;

    private String whiteUser;

    @TableField(exist = false)
    private Date examineTime;

    private Date recoveryTime;

    /**
     * 机审时间
     */
    private Date robotAuditTime;

    /**
     * 初审时间
     */
    private Date firstAuditTime;

    /**
     * 复审时间
     */
    private Date secondAuditTime;

    /**
     * 客户提现备注时间
     */
    private Date customerRemarkTime;

    /**
     * 待提现备注
     */
    private String customerRemark;

    /**
     * 提现取消时间
     */
    private Date cancelTime;

    /**
     * 点击提现时间
     */
    private Date cashOutTime;

    /**
     * 身份证号码
     */
    private String idCardNumber;

    /**
     * 银行卡号
     */
    private String bankCardNo;

    /**
     * 银行简称
     */
    private String simpleName;

    /**
     * 商户放款次数
     */
    private Integer agentBorrowLevel;

    /**
     * 系统放款次数
     */
    private Integer systemBorrowLevel;

    /**
     * 命中代号
     */
    private String hitValue;

    /**
     * 命中规则
     */
    private String hitRule;

    /**
     * 是否拒绝捞回订单，默认否
     */
    private String isCallback;

    /**
     * 是否跟进  默认否
     */
    private String followUp;

    /**
     * 是否白户 以机审时间作为节点判断  默认否
     */
    private String white;

    /**
     * 信用评分
     */
    private BigDecimal creditScore;

    /**
     * 用户登陆地址
     */
    private String ipAddress;

    @TableField(exist = false)
    private Boolean isOverOrders;

    @TableField(exist = false)
    private Boolean isBeforeRepayment;

    @TableField(exist = false)
    private PayLogEntity payLogEntity;

    /**
     * 平账人
     */
    private Long balancerBy;

    private String channel;

    @TableField(exist = false)
    private String channelName;

    /**
     * 催收描述
     */
    @TableField(exist = false)
    private String overDetails;

    /**
     * 是否有还款记录
     */
    @TableField(exist = false)
    private String applyLog;

    /**
     * 是否跟进  默认：否
     */
    private String isFollowUp;

    /**
     * 跟进备注
     */
    private String followUpRemark;

    /**
     * 跟进时间
     */
    private Date followUpTime;

    @TableField(exist = false)
    private Date overRemarkTime;

}
